/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.facturacion.controlador;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.conexion.cConexion;
import sv.com.intesal.facturacion.bean.Caja;
import sv.com.intesal.facturacion.sql.SQLCaja;

/**
 *
 * @author ejerez
 */
public class CajaControlador {

    public void mantenimientoCaja(Caja ca) throws Exception {
        Connection cnn = null;
        PreparedStatement ps = null;
        try {
            cnn = cConexion.conectar();

            if (ca.getCodigo_ca() == null) {
                ps = cnn.prepareStatement(SQLCaja.insertCaja);
            } else {
                ps = cnn.prepareStatement(SQLCaja.updateCaja);
                ps.setInt(2, ca.getCodigo_ca());
            }
            ps.setInt(1, ca.getCodigo_tc());
            ps.setInt(2, ca.getCodigo_s());
            ps.setString(3, ca.getNombre_ca());
            ps.setDouble(4, ca.getSaldo_ca());

            if (ca.getEstado_flag_ca() == true) {
                ps.setString(5, "AC");
            } else {
                ps.setString(5, "I");
            }
            ps.executeUpdate();

            Mensaje m = new Mensaje();
            if (ca.getCodigo_ca() == null) {
                m.messageInfo(m.getIinformation());
            } else {
                m.messageInfo(m.getImodificada());
            }
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<Caja> fillComboBox() throws Exception {
        List<Caja> lista = new ArrayList<Caja>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLCaja.getCajas).executeQuery();
            while (rs.next()) {
                Caja ca = new Caja();
                ca.setCodigo_ca(rs.getInt("codigo_ca"));
                ca.setNombre_ca(rs.getString("nombre_ca"));
                ca.setEstado_ca(rs.getString("estado_ca"));
                ca.setSaldo_ca(rs.getDouble("saldo_ca"));
                ca.setEstado_flag_ca(true);

                if (rs.getString("estado_ca") == "I") {
                    ca.setEstado_flag_ca(false);
                }

                /*TIPO CAJA*/
                ca.setCodigo_tc(rs.getInt("codigo_tc"));
                ca.setNombre_tc(rs.getString("nombre_tc"));

                /*SUCURSAL*/
                ca.setCodigo_s(rs.getInt("codigo_s"));
                ca.setNombre_s(rs.getString("nombre_s"));

                lista.add(ca);
            }

            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<Caja> fillGrid() throws Exception {
        try {
            return this.fillComboBox();
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
